package com.dd.stack.file.service.internal;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.stack.file.pojo.VO.FileVO;
import com.dd.stack.file.pojo.req.FilePageReq;
import org.springframework.web.multipart.MultipartFile;

/**
 * @Author liuxianmeng
 * @CreateTime 2025/4/1 0:59
 * @Description 文件服务
 */
public interface FileService {

    /**
     * 文件上传
     *
     * @param file
     */
    void uploadFile(MultipartFile file);

    /**
     * 文件下载
     *
     * @param id 文件id
     * @return 文件字节数组
     */
    byte[] downloadFile(Long id);

    /**
     * 根据文件id获取文件名
     *
     * @param id 文件id
     * @return 文件名
     */
    String getFileNameById(Long id);

    /**
     * 根据文件id删除文件
     *
     * @param id 文件id
     * @return 布尔值 表示是否删除成功
     */
    Boolean delete(Long id);

    /**
     * 分页查询
     *
     * @param req 分页查询请求类
     * @return 分页结果
     */
    Page<FileVO> page(FilePageReq req);
}
